#ifndef LOGINWINDOW_H
#define LOGINWINDOW_H

#include <QDialog>
#include "tcpclient.h" // 包含网络客户端

namespace Ui {
class LoginWindow;
}

class LoginWindow : public QDialog
{
    Q_OBJECT
signals:
    // 使用 QJsonArray 来传递好友列表，最方便
    void loginSuccess(const QJsonObject& userInfo, const QJsonArray& friends);// 定义一个登录成功的信号

public:
    explicit LoginWindow(TcpClient* client,QWidget *parent = nullptr);
    ~LoginWindow();

private slots:
    void onServerResponse(const QJsonObject& response); // 处理服务器响应的槽函数

    void on_LoginpushButton_clicked();

    void on_RegisterpushButton_clicked();

    void on_connectServerpushButton_clicked();

    void onMyConnectedToServer();

    void onMyDisconnectedFromServer();

    void onMyConnectErrorOccurred(QString message);

private:
    bool m_isConnectedToServer;
    Ui::LoginWindow *ui;
    TcpClient* m_tcpClient;
    QTimer* m_connectionTimer; // 用于控制连接超时的定时器

};

#endif // LOGINWINDOW_H
